3.5

Maska podsieci

Częścią konfiguracji każdego hosta, która odbywa się w czasie ładowania systemu, jest określenie adresu lP. Większość systemów przechowuje ten adres w pliku, który czytany jest w czasie inicjowania systemu, a w rozdziale 5 dowiemy się, jak jest to wykonywane w czasie ładowania systemu w hostach bezdyskowych.
Oprócz znajomości adresu IP, host musi również wiedzieć, ile bitów przeznacza się na adres podsieci, a ile na adres hosta. Informacje te podawane są również w czasie ładowania systemu - za pomocą maski podsieci (ang. subnet mask). Maska ta jest wartością 32-bitową, zawierającą bity jedynek dla części będącej adresem sieci i bity zer dla części, która jest adresem hosta. Rysunek 3.7 przedstawia tworzenie maski podsieci dla dwóch różnych sposobów podziału adresu klasy B. Przykład umieszczony na górze jest podziałem adresu klasy B, jaki zastosowano w sieci noao.edu, pokazanej na rysunku 3.5, gdzie adres podsieci i adresy hostów mają po 8 bitów. Przykład na dole pokazuje podział adresu klasy B na część podsieci wielkości 10 bitów i część adresów hostów wielkości 6 bitów.

Chociaż adresy IP są zwykle zapisywane w postaci kropkowo-dziesiętnej, maski podsieci, które są maskami bitowymi, zapisuje się często jako liczby szesnastkowe, zwłaszcza gdy granica podziału nie pokrywa się z granicą bajtów.
Znając własny adres IP i maskę podsieci, host może stwierdzić, czy datagram IP przeznaczony jest dla: 1) hosta w tej samej podsieci, 2) hosta w innej podsieci tej samej sieci, 3) hosta w innej sieci. Wiedząc, jaki jest twój adres IP, możesz łatwo stwierdzić (analizując bity najbardziej znaczące), czy jest to adres klasy A, B, czy C - co pozwala określić, gdzie przebiega granica pomiędzy adresem sieci a adresem podsieci. Maska podsieci pozwala z kolei na określenie, gdzie przebiega granica adresu podsieci i adresu hosta.

Przykład
Załóżmy, że adresem hosta jest 140.252.1.1 (adres klasy B), a używaną maską podsieci jest 255.255.255.0 (8 bitów dla podsieci i 8 bitów dla hosta).
. Jeśli adresem przeznaczenia będzie 140.252.4.5, wiemy, że adresy sieci klasy B są w takim przypadku identyczne (140.252), ale różne są adresy podsieci (1 i 4). Rysunek 3.8 pokazuje, w jaki sposób 'Yykorzystując adres podsieci, dokonuje się takiego porównania.

. Jeśli adresem przeznaczenia będzie 140.252.1.22, to adres sieci klasy B jest taki sam (140.252) i taka sama jest również maska podsieci (1). Różne są jednak adresy hostów.
. Jeśli adresem przeznaczenia będzie 192.43.235.6 (adres klasy C), to adresy sieci są różne. Po stwierdzeniu tego faktu nie będą wykonywane żadne kolejne 	porównania.
Mając podany adres IP i maskę podsieci, funkcja rutująca IP wykonuje opisane wyżej porównania bez przerwy.

3.6

Adresy IP specjalnego przeznaczenia

Po opisaniu zasad tworzenia podsieci możemy teraz przedstawić siedem adresów IP specjalnego przeznaczenia, które wymieniono w tabeli na rysunku 3.9. Na rysunku tym O oznacza pole zawierające wszystkie bity O, a -1 oznacza pole zawierające wszystkie bity 1. Określenia netid, subnetid i hostid oznaczają że odpowiednie pola są polami samych bitów zero lub samych bitów jeden. Puste pola w kolumnie podsieci oznaczają, że adres nie jest dzielony na podsieci.
Tabela pokazana niżej podzielona została na trzy części. Pierwsze dwa wiersze zawierają informacje o adresie źródłowym specjalnego przeznaczenia, kolejny wiersz opisuje specjalny adres lokalnej pętli zwrotnej, a ostatnie cztery wiersze to adresy typu broadcast.